Networks connecting a plurality of terminals (nodes) such as computers may have various topologies such as bus, star, ring and mesh topologies. An example of a bus network is Ethernet (registered trademark). Ethernet has a physical star topology but has a logical bus topology, in which each node can freely transmit a signal (data). On the other hand, a signal collision may occur in Ethernet, and in such a case, delivery of the signal is delayed (namely, latency is increased).
Like Ethernet, ring networks often are wired in a physical star topology in which each network node is connected to a central hub. An example of a ring network is Token Ring. In Token Ring, a signal called a “token” travels around a logical ring (token passing), and only a node where the token is present can send data. Namely, the nodes where the token is not present cannot send data, and therefore, collision of data on the network is prevented. The data sent out to the ring is transmitted to the destination node by being relayed by nodes other than the destination node.
With regard to a communication system having a plurality of nodes connected to each other via Token Ring, it has been proposed to provide, as a flow control system to cope with a load variation at a receiver node without complicating the functions of the nodes, a system in which a sender node includes a send-out means that sends out a set of data addressed to a receiver node and a busy token and a relay means that, upon receipt of the set of data and token sent out by the sender node itself, sends out the set as it is, and a receiver node includes a relay means that, if there is no room to accept data when receiving the set of data and token, sends out the set as it is and an acceptance means that, if there is room to accept data when receiving the set of data and token, accepts the data included in the set (JP2001-326663A).
Further, a communication device is known which, when transmitting data via a bus or ring network, divides the data into segments each having a predetermined size, adds a header at the beginning of each data segment and a trailer and a CRC (Cyclic Redundancy Check) at the end of each data segment to form a data packet, and sets priority to each data packet, such that the data packets are sent out to the network in order from the one with the highest priority (see, for example, JP2000-134213A or JP2002-171268A).
However, in the system proposed in JP2001-326663A, when the sender node sends data including embedded control content for controlling hardware of the receiver node, if the receiver node is continuously in a state with no room to accept data, the relay means keeps sending out the data, and thus, the receiver node cannot accept the data.
In a case where the technology described in JP2000-134213A or JP2002-171268A is used in the ring network, because the data to be transmitted is divided to form data packets, it is possible to make a data packet with a high priority pass a data packet with a low priority (put the data packet with a high priority before the data packet with a low priority) such that the data packet with a high priority is transmitted earlier. However, when the transmission of the data packet with a low priority has been started already, it is necessary to wait for the completion of the transmission of the data packet with a low priority before starting the transmission of the data with a high priority. In order to have the data packet with a high priority sent more promptly, it may be conceived to divide the data to be transmitted into smaller data segments such that each data packet has a smaller size. However, when the transmission data is divided into smaller data segments to generate data packets having a smaller size, the number of the data packets increases, and accordingly, the amount of data of the header, trailer, etc. of the data packets increases. This deteriorates the transmission efficiency of the transmission data, and in addition, increases the processing load for sorting and processing the incoming data packets at each node.